Package-level declarations

Types

Link copied to clipboard
@Serializable
data class CreatedDocument(val id: String, val updatedAtMillis: Long)
Link copied to clipboard
sealed interface CreateDocumentOutcome

Result of validating, stamping, and storing a new feedback document.

Link copied to clipboard
Link copied to clipboard
data class DocumentRecord(val id: String, val studentId: Long, val authorUserId: Long, val content: String, val updatedAtMillis: Long)
Link copied to clipboard
data class DocumentRow(val id: String, val content: String, val updatedAtMillis: Long)
Link copied to clipboard
@Serializable
data class DocumentSummary(val id: String, val studentId: Long, val authorUserId: Long, val title: String, val commentCount: Int, val blockTypes: List<String>, val hasContent: Boolean, val sharedWithStudent: Boolean, val updatedAtMillis: Long)
Link copied to clipboard
@Serializable
data class EmailResult(val sent: Boolean, val recipients: List<String>, val updatedAtMillis: Long? = null)
Link copied to clipboard

Coordinates authorized feedback documents, profile lookup, and email delivery.

Link copied to clipboard
@Serializable
data class FeedbackStaffMember(val userId: Long, val username: String, val fullName: String?, val role: Role, val languages: List<String>, val feedbackTags: List<String>, val gradingTags: List<String>)
Link copied to clipboard
interface Mailer : AutoCloseable
Link copied to clipboard
Link copied to clipboard
@Serializable
data class SendEmailBody(val subject: String, val html: String, val documentId: String? = null, val expectedUpdatedAtMillis: Long? = null)
Link copied to clipboard
data class SendFeedbackCommand(val studentId: Long, val documentId: String?, val expectedUpdatedAtMillis: Long?, val subject: String, val html: String)

Describes one feedback email and the document revision it may publish.

Link copied to clipboard
sealed interface SendFeedbackOutcome

Result of resolving recipients, checking the document revision, and sending feedback.

Link copied to clipboard
data class SentFeedbackEmail(val recipients: List<String>, val updatedAtMillis: Long?)
Link copied to clipboard
@Serializable
data class SharedDocumentResponse(val id: String, val updatedAtMillis: Long, val document: JsonElement)
Link copied to clipboard
class SmtpMailer(host: String, port: Int, from: String, user: String? = null, password: String? = null, startTls: Boolean = false) : Mailer
Link copied to clipboard
data class SmtpSettings(val host: String, val port: Int, val from: String, val user: String?, val password: String?, val startTls: Boolean)
Link copied to clipboard
@Serializable
data class StoredAplusFeedbackSource(val type: StoredFeedbackSourceType, val submissionId: Long, val href: String, val quote: String, val prefix: String, val suffix: String, val occurrence: Long)
Link copied to clipboard
@Serializable
@SerialName(value = "comment")
data class StoredCommentBlock(val id: String, val content: String, val staffOnly: Boolean? = null, val source: StoredAplusFeedbackSource? = null, val authorUserId: Long? = null) : StoredDocumentBlock
Link copied to clipboard
@Serializable
sealed interface StoredDocumentBlock
Link copied to clipboard
@Serializable
data class StoredDocumentContract(val encoding: StoredDocumentEncoding, val studentId: String, val title: String, val sharedWithStudent: Boolean? = null, val blocks: List<StoredDocumentBlock>, val fileAnnotations: Map<String, List<StoredSarifResult>>)
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
@Serializable
@SerialName(value = "file")
data class StoredFileBlock(val id: String, val ref: StoredFileReference) : StoredDocumentBlock
Link copied to clipboard
@Serializable
data class StoredFileReference(val weekId: Long, val module: String, val filename: String, val exerciseId: Long, val submissionId: Long)
Link copied to clipboard
@Serializable
data class StoredSarifArtifactLocation(val uri: String, val uriBaseId: String? = null)
Link copied to clipboard
@Serializable
data class StoredSarifLocation(val physicalLocation: StoredSarifPhysicalLocation)
Link copied to clipboard
@Serializable
data class StoredSarifMessage(val text: String, val markdown: String? = null)
Link copied to clipboard
@Serializable
data class StoredSarifPhysicalLocation(val artifactLocation: StoredSarifArtifactLocation, val region: StoredSarifRegion? = null)
Link copied to clipboard
@Serializable
data class StoredSarifRegion(val startLine: Long, val startColumn: Long? = null, val endLine: Long? = null, val endColumn: Long? = null, val snippet: StoredSarifSnippet? = null)
Link copied to clipboard
@Serializable
data class StoredSarifResult(val ruleId: String, val kind: String? = null, val level: String? = null, val message: StoredSarifMessage, val locations: List<StoredSarifLocation>? = null, val fingerprints: Map<String, String>? = null, val properties: JsonObject? = null)
Link copied to clipboard
@Serializable
data class StoredSarifSnippet(val text: String)
Link copied to clipboard
data class StudentDocument(val record: DocumentRecord, val shared: Boolean, val content: String)
Link copied to clipboard
sealed interface UpdateDocumentOutcome

Result of an ownership-checked optimistic document update.

Link copied to clipboard
@Serializable
data class VisibleDocumentResponse(val id: String, val studentId: Long, val authorUserId: Long, val sharedWithStudent: Boolean, val updatedAtMillis: Long, val document: JsonElement)